package com.vercon.mobilesafe74.view;

import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.widget.CheckBox;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.vercon.mobilesafe74.R;

//TODO 难点：我们不知道选择哪一个方法的时候，直接设置this，固定调用同一个方法
/**
 * 自定义控件
 */
public class SettingItemView extends RelativeLayout {

    private TextView tv_title;
    private TextView tv_des;
    private CheckBox cb_box;

    private static final String NAMESPACE="http://schemas.android.com/apk/res/com.vercon.mobilesafe74";//xml文件自定义的名称
    private String mDestitle;
    private String mDesoff;
    private String mDeson;

    public SettingItemView(Context context) {
        this(context,null);
    }

    public SettingItemView(Context context, AttributeSet attrs) {
        this(context, attrs,0);
    }

    public SettingItemView(Context context, AttributeSet attrs, int defStyleAttr) {
        this(context, attrs, defStyleAttr,0);
    }

    public SettingItemView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        //1.将xml inflate view
        View.inflate(context, R.layout.setting_item_view,this);
        //2.找到子布局里面的控件
        tv_title = findViewById(R.id.tv_title);
        tv_des = findViewById(R.id.tv_des);
        cb_box = findViewById(R.id.cb_box);

        //获取自定义属性
        initAttrs(attrs);
        tv_title.setText(mDestitle);
    }

    /**
     * 可以根据这个方法获取我们自定义属性值
     * @param attrs
     */
    private void initAttrs(AttributeSet attrs) {
        //1.获取属性的总个数
        //Log.i("SettingItemView", "attrs.getAttributeCount()---> "+attrs.getAttributeCount());
        //2.获取属性名称以及属性值
//        for (int i=0;i<attrs.getAttributeCount();i++){
//            Log.i("SettingItemView", "name: "+attrs.getAttributeName(i));
//            Log.i("SettingItemView", "value: "+attrs.getAttributeValue(i));
//            Log.i("SettingItemView", "=====================================");
//        }

        mDestitle = attrs.getAttributeValue(NAMESPACE, "destitle");
        mDesoff = attrs.getAttributeValue(NAMESPACE, "desoff");
        mDeson = attrs.getAttributeValue(NAMESPACE, "deson");
    }

    /**
     * 判断是否是开启状态
     * @return
     */
    public boolean isCheck(){
        return cb_box.isChecked();
    }

    /**
     * 将checkbox与事件绑定起来
     * @param isCheck
     */
    public void setCheck(boolean isCheck){
        cb_box.setChecked(isCheck);
        if (isCheck){
            tv_des.setText(mDeson);
        }else {
            tv_des.setText(mDesoff);
        }
    }
}
